#ifndef ZMACHINE_LEARNING_ALGORITHM_H_
#define ZMACHINE_LEARNING_ALGORITHM_H_

#include "../Common/GlobalDefines.h"
#include "Eigen/Dense"
#include <vector>

#define NAMESPACE_MACHINE_LEARNING_BEGIN namespace MLAlgorithms {
#define NAMESPACE_MACHINE_LEARNING_END   }

GLOBAL_NAMESPACE_BEGIN

NAMESPACE_MACHINE_LEARNING_BEGIN

    class MLAlgorithm
    {
    public:
        MLAlgorithm(){}
        ~MLAlgorithm(){}

        virtual void init(const Eigen::MatrixXd& data) = 0;
        virtual bool commit() = 0;
    };

NAMESPACE_MACHINE_LEARNING_END

GLOBAL_NAMESPACE_END

#endif